using System;
using System.Web.UI.WebControls;
using EYDIngenieria.ERP.Aplicacion.Gestion;
using EYDIngenieria.ERP.Aplicacion.Mantenedores;
using EYDIngenieria.ERP.ObjetosDeNegocio.Dominio;

public partial class Gestion_Default : System.Web.UI.Page
{

    private readonly MantenedorProducto mantenedorProducto = new MantenedorProducto();
    private readonly MantenedorProveedor mantenedorProveedor = new MantenedorProveedor();
    private readonly MantenedorFamiliaProducto mantenedorFamiliaProducto = new MantenedorFamiliaProducto();
    private readonly GestionFactura gestionFactura = new GestionFactura();
    private Proveedor[] proveedores;
    private FamiliaProducto[] familiasDeProducto;
    private Producto[] productos;

    private readonly Factura factura = new Factura();
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            Session.Add("factura", factura);
            dtlDetalleFactura.DataSource = factura.Detalle;
            dtlDetalleFactura.DataBind();
            ddlProveedor.DataTextField = "RazonSocial";
            ddlProveedor.DataValueField = "Id";
            proveedores = mantenedorProveedor.Listar();
            ddlProveedor.DataSource = proveedores;
            ddlProveedor.DataBind();

           

            ddlFamilia.DataTextField = "Nombre";
            ddlFamilia.DataValueField = "Id";
            familiasDeProducto = mantenedorFamiliaProducto.Listar();
            ddlFamilia.DataSource = familiasDeProducto;
            ddlFamilia.DataBind();

            ddlProducto.DataTextField = "Nombre";
            ddlProducto.DataValueField = "Id";
            ddlProducto.DataSource = productos;
            ddlProducto.DataBind();

            //txbFecha.Text = DateTime.Now.ToShortDateString();
        }
    }

    protected void ddlFamilia_SelectedIndexChanged(object sender, EventArgs e)
    {
        FamiliaProducto f = new FamiliaProducto();
        f.Id = Int16.Parse(((DropDownList)sender).SelectedValue);
        productos = mantenedorProducto.Listar(f);
        ddlProducto.DataSource = productos;
        ddlProducto.DataBind();
    }
    protected void btnAgregar_Click(object sender, EventArgs e)
    {

        DetalleFactura detalle = new DetalleFactura();
        int idProducto = Int16.Parse(ddlProducto.SelectedValue);
        Producto p = mantenedorProducto.Obtener(idProducto);
        detalle.Producto = p;
        detalle.Cantidad = long.Parse(txbCantidad.Text);
        Factura f = ((Factura)Session["factura"]);
        f.Detalle.Add(detalle);
        dtlDetalleFactura.DataSource = f.Detalle;
        dtlDetalleFactura.DataBind();
        f.MontoTotal = 0;

        foreach (DetalleFactura d in f.Detalle)
        {

            f.MontoTotal = f.MontoTotal + d.ValorTotal;
        }

        
        txbCantidad.Text = string.Empty;

    }
    protected void botonAceptar_Click(object sender, EventArgs e)
    {
        Factura f = ((Factura)Session["factura"]);
        f.Fecha = DateTime.Now;
        Proveedor proveedor = mantenedorProveedor.Obtener(Int16.Parse(ddlProveedor.SelectedValue));
        f.Proveedor = proveedor;
        gestionFactura.GuardarFactura(f);
        dtlDetalleFactura.DataSource = null;
        dtlDetalleFactura.DataBind();

       

    }
   
}
